package com.smartleanx.module.hrm.service.salary;

import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.PageInfo;
import com.smartleanx.module.hrm.dal.dataobject.salary.HrmSalaryPlan;
import com.smartleanx.module.hrm.dal.dataobject.salary.HrmSalaryTaxationRuleTenant;
import com.smartleanx.module.hrm.dal.dataobject.salary.bo.HrmSalaryPlanInsertBo;
import com.smartleanx.module.hrm.dal.dataobject.salary.vo.HrmSalaryPlanInsertVo;
import com.smartleanx.module.hrm.dal.dataobject.salary.vo.HrmSalaryTableConfigVo;
import com.smartleanx.module.hrm.dal.dataobject.salary.vo.HrmSalaryTaxationRuleVo;
import com.smartleanx.module.hrm.dal.dataobject.salary.vo.SystemColumnTenantVo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author mybatis-plus
 * @since 2024-12-21
 */
public interface HrmSalaryTableConfigService {

    List<HrmSalaryTableConfigVo> selectList(Integer type);

    List<HrmSalaryTableConfigVo> selectListInfo(Integer type);

    Integer insertOrUpdate(List<HrmSalaryTableConfigVo> hrmSalaryTableConfigVos);

    List<SystemColumnTenantVo> selectColumnListInfo(Integer type);

    Integer columnInsertOrUpdate(List<SystemColumnTenantVo> systemColumnTenantVos);

    Integer salarySettingSaveOrUpdate(Integer type);

    Integer selectSetting();

    Integer init(Integer tenantId);

    PageInfo<HrmSalaryTaxationRuleVo> selectTaxationRuleList(Integer pageNum, Integer pageSize);

    Integer insertOrUpdateTaxationRule(HrmSalaryTaxationRuleTenant HrmSalaryTaxationRuleTenant);


    List<JSONObject> taxationRuleBySelect();

    HrmSalaryTaxationRuleTenant selectTaxationRuleById(Integer id);

    Integer insertSalaryPlan(HrmSalaryPlanInsertBo hrmSalaryPlanInsertBo);


    Integer updateSalaryPlan(HrmSalaryPlanInsertBo hrmSalaryPlanInsertBo);


    PageInfo<HrmSalaryPlanInsertVo> salaryPlanList(Integer pageNum, Integer pageSize);

    HrmSalaryPlan selectSalaryPlanById(Integer id);



    Integer deleted(Integer id);
}
